/*
 * funcionesAlgoritmo.h
 *
 *  Created on: 30/09/2011
 *      Author: utn_so
 */

#ifndef FUNCIONESALGORITMO_H_
#define FUNCIONESALGORITMO_H_

#include"./funcionesUtiles.h"

typedef struct discoINFO {
	char ruta[256];
	int sincroFIN;
	unsigned int hilo_asociado;
	struct nodoLista *ptrSgte;
}discoINFO_t;

typedef struct nodoLista
{
	char ruta[256];
	struct nodoLista *ptrSgte;
}nodoLista_t;

typedef nodoLista_t *ptrNodoLista;

uint32_t sectoresAsignadosXDisco(uint32_t numeroDiscos, uint32_t numeroSectores);
uint32_t otorgarPeticionDisco(uint32_t sector, uint32_t numeroDiscos, uint32_t numeroSectores, desc_PDD_t *vec, uint32_t socket);
int getDiscos (ptrNodoLista ListaDiscos);
uint32_t encolarParaEscritura(desc_PDD_t *desc_PDD, uint32_t cant_PDD, payloadEscritura_t payloadEscritura, uint32_t lonPay);
int pasarClusterASector(int Cluster);


/******** funciones de Hilos ****************/
void crearHiloDisco(int senialHandShake, int Disco, discoINFO_t listaDiscos);
void funcion_leer_escribir(int opcion);
void funcion_conectar_disco(void);
void funcion_hilo_sincronizar(discoINFO_t discos, int DiscoNuevo);


#endif /* FUNCIONESALGORITMO_H_ */
